# @Time    :2025/3/24 16:05
list1 = [100, 200, 300, 400, 500]
# 1）通过索引获取列表中元素
# print(list1[0])
from idna.intranges import intranges_from_list

# 2）列表切片
# print(list1[:])
# print(list1[1:4])  # 前包后不包

# 3） 向列表中添加元素
# list1.append("233") #append添加到列表最后
# print(list1)

#extend()

# list1.extend("a")
# print(list1)

# list1.insert(1, "z")  # [100, "z",200, 300, 400, 500]
# print(list1)

# 列表相加
# list1 = [1, 2, 3]
# list2 = ["a", "b", "c"]
# list3 = ["x", "y", list2]
# print(list1 + list2)  # 列表拼接
# print(list1 + list3)  # [1,2,3,"x","y",["a", "b", "c"]]

# 1）5.2.5 列表乘法
# list1 = [1, 2, 3]
# list2 = ["a", "b", "c"]
# print(list1 * 2, list2 * 3)

# 1）5.2.6 修改列表中元素
#list1 = [100, 200, 300, 400, 500]
# 1）1）通过下标修改
# list1[4]=800
# print(list1)

# 2）通过切片修改
# list1[1:4]=[900]

# list1[2:4]=["a",1,3]
# print(list1)

# 5.2.7 检查成员是否为列表中元素
# print(100 in list1)

# 5.2.8 获取列表长度
# print(len(list1))

# 5.2.9 求列表中元素的最大值、最小值、加和
# print(max(list1))
# print(min(list1))
# print(sum(list1))

# 5.2.10 遍历列表
# 1）直接遍历列表元素
# for i in list1:
#     print(i)

# 2）通过下标遍历列表
# for i in range(0, len(list1)):
#     print(i, list1[i])

# 3）使用enumerate()同时获取列表的下标和元素
# for i ,val in enumerate(list1):
#     print(i,val)

# 5.2.11 删除列表指定位置元素或者切片
#list2 = [100, 200, 300, 400, 500, "q"]
# del (list2[1])
# print(list2)

# list2.pop(2)
# print(list2)

# list2.remove("q")  # remove(值)
# print(list2)



# 5.2.12 嵌套列表
# list3 = [[1, 2, 4], [5, 6, 7], ["q", "w", "e"]]
# for i in list3:
#     print(i)

# 5.2.13 列表推导式
# （1）基础的列表推导式
# squares = [i ** 2 for i in range(5)]
# print(squares)

# （2）带条件的列表推导式
# squares = [i ** 3 for i in range(6) if i % 2 != 0]
# print(squares)

# （3）使用现有列表的列表推导式
# list2 = [100, 200, 300, 400, 500]
# squares = [i ** 2 for i in list2]
# print(squares)

# （4）包含多个循环的列表推导式
# list1 = ["a", "b", "c"]
# list2 = [100, 200, 300, 400, 500]
# squares = [(i, j) for i in list1 for j in list2]
# print(squares)

#5.2.14 zip()函数
list1 = ["a", "b", "c"]
list2 = [100, 200, 300, 400, 500]
# zipped = list(zip(list2, list1))  # zip类型转换成list
# print(zipped)
for i,j in zip(list2,list1):
    print(i,j)


# 修改指定位置的数据
#list1 = [100, 200, 300, 400, 500]
# list1[0]=12
# print(list1)
# 修改列表切片的数据
# list1[1:3] = [12]
# print(list1)


# 	返回排序后的新列表，可选降序
# list1.sort(reverse=True)
# print(list1)

# 	对列表就地排序，可选降序
#print(sorted(list1, reverse=True))# reverse=True 降序
#print(list1)

# 	反转列表中的元素
# list1.reverse()
# print(list1)
# 	返回x在列表中首次出现的位置，可指定起始和结束范围
#print(list1.index(100))

# 	返回x的数量
# list1.count(100)
# print(list1)
#	拷贝列表

